package Paquete_cromosoma;

import java.util.ArrayList;

import Paquete_gen.Gen;

public abstract class Cromosoma implements Comparable<Cromosoma>{
	
	protected ArrayList<Gen> genes;
	protected ArrayList<Double> fenotipo; //Fenotipo es un array de Double, debido a las funciones que tienen X e Y	
	protected double aptitud;
	protected double puntuacion;
	protected double punt_acum;
	
	//funciones abstractas, a desarrollar en CromsomaProoblemaConcreto
	public abstract ArrayList<Double> fenotipo();
	public abstract double evalua();
	public abstract void inicializaCromosoma();
	public abstract Cromosoma copia();
	public abstract int getLongitudCromosoma();
	public abstract int getNumGenes();
	
	
	//getters and setters
    public ArrayList<Gen> getGenes() {
        return genes;
    }
    
    public void setGenes(ArrayList<Gen> genes) {
		this.genes = genes;
	}

	public ArrayList<Double> getFenotipo() {
        return fenotipo;
    }
    
    public void setFenotipo(ArrayList<Double> fenotipo) {
		this.fenotipo = fenotipo;
	}
    
	public double getAptitud() {
        return aptitud;
    }
	public void setAptitud(double aptitud) {
		this.aptitud = aptitud;
	}
	
	public double getPuntuacion() {
		return puntuacion;
	}
	public void setPuntuacion(double puntuacion) {
		this.puntuacion = puntuacion;
	}
	public double getPunt_acum() {
		return punt_acum;
	}
	public void setPunt_acum(double punt_acum) {
		this.punt_acum = punt_acum;
	}
	
}
